package dao;

import java.util.List;

import model.Angebotstyp;

import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 * WebContent/WEB-INF/lib/org.springframework.orm-3.0.3.RELEASE.jar
 * 
 */

public class AngebotstypDao extends HibernateDaoSupport {

	/**
	 * Speichert einen {@link Angebotstyp} in der Datenbank.
	 * 
	 * @param Bezeichnung
	 * 
	 */
	public void create(String bezeichnung) {
		Angebotstyp at = new Angebotstyp();
		at.setBezeichnung(bezeichnung);
		save(at);
	}

	/**
	 * Gibt ein einzelnen Angebotstyp laut des vorgegebnen Primary Key zurueck
	 * 
	 * @param id
	 * @return {@link Angebotstyp}
	 */
	public Angebotstyp findById(int id) {
		HibernateTemplate template = getHibernateTemplate();
		return (Angebotstyp) template.get(Angebotstyp.class, id);
	}

	/**
	 * Erzeugt o. Aendert einen Angebottyp
	 * 
	 * @param {@link Angebotstyp}
	 * @return {@link Angebotstyp}
	 */
	public Angebotstyp save(Angebotstyp angebotstyp) {
		HibernateTemplate template = getHibernateTemplate();
		template.saveOrUpdate(angebotstyp);
		return angebotstyp;
	}

	/**
	 * Loescht einen Angebotstyp
	 * 
	 * @param {@link Angebotstyp}
	 * @exception {@link IllegalArgumentException}, wenn der Uebergabeparameter
	 *            null ist
	 */
	public void delete(Angebotstyp angebotstyp) {
		if (angebotstyp == null) {
			throw new IllegalArgumentException(); // angebotstyp darf nicht NULL
													// sein

		}
		HibernateTemplate template = getHibernateTemplate();
		template.delete(angebotstyp);
	}

	/**
	 * Liefert alle Angebotstypen aus der Datenbank
	 * 
	 * @return alle Angebotstypen
	 */
	@SuppressWarnings("unchecked")
	public List<Angebotstyp> findAll() {
		HibernateTemplate template = getHibernateTemplate();
		@SuppressWarnings("rawtypes")
		List results = template.loadAll(Angebotstyp.class);
		return results;
	}

}
